import Taro, { Component, Config } from '@tarojs/taro'
import { Provider } from '@tarojs/mobx'
import 'taro-ui/dist/style/index.scss' // 全局引入一次即可
import '@tarojs/async-await';
import Index from './pages/index'
import Stores from './store/Stores';
// import mui from './assets/mui/mui.min'

import './app.less'
import { companyName, currentPlatForm, getRuntime, ServerHost } from "./utils/common";

const store = {
  stores: new Stores()
};

class App extends Component {
  state = {
    pagesArr: [
      { name: 'index', title: companyName, url: 'pages/index/index', isLogin: false },
      { name: 'myCar', title: '我的车列表', url: 'pages/index/myCar', isLogin: false },
      { name: 'problem', title: '常见问题', url: 'pages/index/problem', isLogin: false },
      { name: 'upgrade', title: '代理升级', url: 'pages/index/upgrade', isLogin: false },
      { name: 'paySuccess', title: '缴费成功', url: 'pages/index/paySuccess', isLogin: false },
      { name: 'queryAuth', title: '真伪查询', url: 'pages/index/queryAuth', isLogin: false },
      { name: 'declareTaxIndex', title: '车船税代缴', url: 'pages/declareTax/index', isLogin: false },
      { name: 'declareTaxSuccess', title: '报税成功', url: 'pages/declareTax/paySuccess', isLogin: false },
      { name: 'needFile', title: '所需资料', url: 'pages/index/needFile', isLogin: false },
      { name: 'queryTaxTicket', title: '税票查询', url: 'pages/index/queryTaxTicket', isLogin: false },
      { name: 'mallNone', title: '商城', url: 'pages/index/none', isLogin: false },
      { name: 'service', title: '车主服务', url: 'pages/index/service', isLogin: false },
      { name: 'orderIndex', title: '我的订单', url: 'pages/order/index', isLogin: false },
      { name: 'orderApplySuccess', title: '申请成功', url: 'pages/order/applySuccess', isLogin: false },
      { name: 'orderPackgeDetail', title: '我的订单-快递详情', url: 'pages/order/packgeDetail', isLogin: false },
      { name: 'orderOrderDetail', title: '我的订单-订单详情', url: 'pages/order/orderDetail', isLogin: false },
      { name: 'orderApplyTax', title: '申请税票', url: 'pages/order/applyTax', isLogin: false },
      { name: 'orderEdit', title: '订单修改', url: 'pages/order/orderEdit', isLogin: false },
      { name: 'mineIndex', title: '会员中心', url: 'pages/mine/index', isLogin: false },
      { name: 'mineQrcode', title: '我的二维码', url: 'pages/mine/qrcode', isLogin: false },
      { name: 'mineProfit', title: '我的收益', url: 'pages/mine/profit', isLogin: false },
      { name: 'mineProfitRecord', title: '提现记录', url: 'pages/mine/profitRecord', isLogin: false },
      { name: 'mineCash', title: '立即提现', url: 'pages/mine/cash', isLogin: false },
      { name: 'mineCashSuccess', title: '提现成功', url: 'pages/mine/cashSuccess', isLogin: false },
      { name: 'mineTeam', title: '我的团队', url: 'pages/mine/team', isLogin: false },
      { name: 'mineTeamMember', title: '团队成员', url: 'pages/mine/teamMember', isLogin: false },
      { name: 'mineCard', title: '我的银行卡', url: 'pages/mine/card', isLogin: false },
      { name: 'mineCardAdd', title: '添加银行卡', url: 'pages/mine/cardAdd', isLogin: false },
      { name: 'mineEdit', title: '编辑资料', url: 'pages/mine/edit', isLogin: false },
      { name: 'mineEditPhone', title: '修改手机号', url: 'pages/mine/editPhone', isLogin: false },
      { name: 'mineAboutus', title: '关于我们', url: 'pages/mine/aboutus', isLogin: false },
      { name: 'mineSetPassword', title: '修改密码', url: 'pages/mine/setPassword', isLogin: false },
      { name: 'mineSetPasswordPhone', title: '修改密码', url: 'pages/mine/setPasswordPhone', isLogin: false },
      { name: 'profitOrder', title: '我的收益订单', url: 'pages/mine/profitOrder', isLogin: false },
      { name: 'profitOrder', title: '我的收益订单', url: 'pages/mine/profitOrderDetail', isLogin: false },
      { name: 'login', title: '登录', url: 'pages/login/login', isLogin: false },
      { name: 'forgetPassword', title: '忘记密码', url: 'pages/login/forgetPassword', isLogin: false },
      { name: 'registerStepOne', title: '注册', url: 'pages/login/registerStepOne', isLogin: false },
      { name: 'qrcode', title: '关注微信公众号', url: 'pages/login/qrcode', isLogin: false },
      { name: 'cardIndex', title: '信用卡还款', url: 'pages/card/index', isLogin: false },
      { name: 'CardRepaymentRecord', title: '信用卡还款-还款明细', url: 'pages/card/repaymentRecord', isLogin: true },
      { name: 'CardRepaymentDetail', title: '还款明细详情', url: 'pages/card/repaymentDetail', isLogin: false },
      { name: 'CardPaymentRecord', title: '信用卡还款-收款明细', url: 'pages/card/paymentRecord', isLogin: true },
      { name: 'CardManualRepayment', title: '信用卡还款-手动还款', url: 'pages/card/manualRepayment', isLogin: true },
      { name: 'CardCreditCard', title: '信用卡还款-智能还款', url: 'pages/card/creditCard', isLogin: true },
      { name: 'CardAddPlay', title: '信用卡还款-添加还款计划', url: 'pages/card/addPlay', isLogin: false },
      { name: 'CardCreditAdd', title: '信用卡还款-添加信用卡', url: 'pages/card/creditAdd', isLogin: false },
      { name: 'CardAuthOne', title: '信用卡还款-实名认证', url: 'pages/card/authOne', isLogin: false },
      { name: 'CardAuthTwo', title: '信用卡还款-实名认证', url: 'pages/card/authTwo', isLogin: false },
      { name: 'CardAuthThree', title: '信用卡还款-实名认证', url: 'pages/card/authThree', isLogin: false },
      { name: 'CardAuthSuccess', title: '信用卡还款-实名认证成功', url: 'pages/card/authSuccess', isLogin: false },
      { name: 'CardReceiveSuccess', title: '智能收款成功', url: 'pages/card/receiveSuccess', isLogin: false },
      { name: 'CardReceive', title: '信用卡还款-智能收款', url: 'pages/card/receive', isLogin: true },
      { name: 'CardSendMessage', title: '短信验证', url: 'pages/card/sendMessage', isLogin: false },
      { name: 'ShareIndex', title: '分享', url: 'pages/share/index', isLogin: false },
      { name: 'serviceAgreement', title: '注册协议', url: 'pages/other/serviceAgreement', isLogin: false },
      { name: 'bindPhone', title: '手机号登录', url: 'pages/other/bindPhone', isLogin: false },
      { name: 'block', title: '中间页跳转', url: 'pages/index/block', isLogin: false },
    ]
  }

  componentWillMount(): void {
    let userInfo = getRuntime().getUserInfo() || {}
    //  console.error(userInfo)

    if (window.plus) {
      this.plusReady();
    } else {
      document.addEventListener('plusready', this.plusReady, false);
    }
  }

  config: Config = {
    pages: [
      'pages/index/index',
      'pages/index/myCar', // 我的车列表
      'pages/index/problem', // 常见问题
      'pages/index/upgrade', // 代理升级
      'pages/index/paySuccess', // 缴费成功
      'pages/index/queryAuth', // 真伪查询
      'pages/declareTax/index', // 报税表单
      'pages/declareTax/paySuccess', // 报税成功
      'pages/index/needFile', // 所需资料
      'pages/index/queryTaxTicket', // 税票查询
      'pages/index/none', // 商城
      'pages/index/service', // 车主服务
      'pages/order/index', // 我的订单
      'pages/order/applySuccess', // 申请成功
      'pages/order/packgeDetail', // 我的订单-快递详情
      'pages/order/orderDetail', // 我的订单-订单详情
      'pages/order/applyTax', // 我的订单-订单详情
      'pages/order/orderEdit', // 我的订单-修改订单
      'pages/mine/index', // 会员中心
      'pages/mine/qrcode', // 我的二维码
      'pages/mine/profit', // 我的收益
      'pages/mine/profitRecord', // 我的收益-提现记录
      'pages/mine/cash', // 我的收益-立即提现
      'pages/mine/cashSuccess', // 我的收益-立即提现-提现成功
      'pages/mine/team', // 我的团队
      'pages/mine/teamMember', // 我的团队-团队成员
      'pages/mine/card', // 我的银行卡
      'pages/mine/cardAdd', // 我的银行卡
      'pages/mine/edit', // 编辑资料
      'pages/mine/editPhone', // 修改手机号
      'pages/mine/aboutus', // 修改手机号
      'pages/mine/setPassword', // 修改密码
      'pages/mine/setPasswordPhone', // 修改密码-通过手机号
      'pages/mine/profitOrder', // 我的收益订单
      'pages/mine/profitOrderDetail', // 我的收益订单
      'pages/login/login', // 登录
      'pages/login/forgetPassword',
      'pages/login/registerStepOne',
      'pages/login/qrcode', // 关注微信公众号
      'pages/card/index', // 信用卡还款
      'pages/card/repaymentRecord', // 信用卡还款-还款明细
      'pages/card/repaymentDetail', // 信用卡还款-还款明细详情
      'pages/card/paymentRecord', // 信用卡还款-收款明细
      'pages/card/manualRepayment', // 信用卡还款-手动还款
      'pages/card/creditCard', // 信用卡还款-智能还款
      'pages/card/addPlay', // 信用卡还款-添加还款计划
      'pages/card/creditAdd', // 信用卡还款-添加信用卡
      'pages/card/auth', // 信用卡还款-实名认证
      'pages/card/authOne', // 信用卡还款-实名认证
      'pages/card/authTwo', // 信用卡还款-实名认证
      'pages/card/authThree', // 信用卡还款-实名认证
      'pages/card/authSuccess', // 信用卡还款-实名认证
      'pages/card/receiveSuccess', // 信用卡还款-智能收款-成功
      'pages/card/receive', // 信用卡还款-智能收款
      'pages/card/sendMessage', // 信用卡还款-短信验证
      'pages/share/index', // 分享
      'pages/other/serviceAgreement', // 注册协议
      'pages/other/bindPhone', // 注册协议
      'pages/index/block', // 中间页跳转
    ],
    window: {
      backgroundTextStyle: 'light',
      navigationBarBackgroundColor: '#fff',
      navigationBarTitleText: '捷佳车服',
      navigationBarTextStyle: 'black'
    }
  }

  plusReady() {
    // Android处理返回键
    plus.key.addEventListener('backbutton', function () {
      // TODO...
    }, false);
  }

  componentDidShow() {
    // hbuilerApp设置首页标题
    if (currentPlatForm === 'h5App') {
      this.setAppTitle()
    }
  }

  setAppTitle() {
    let fullUrl = ServerHost + '/m/#/pages/index/index'
    let id: string = 'index'
    let webview = plus.webview.create(fullUrl, id, {
      'titleNView': {                       // 窗口的标题栏控件
        titleText: companyName,                // 标题栏文字,当不设置此属性时，默认加载当前页面的标题，并自动更新页面的标题
        titleColor: "#ffffff",             // 字体颜色,颜色值格式为"#RRGGBB",默认值为"#000000"
        titleSize: "17px",                 // 字体大小,默认17px
        backgroundColor: "#00d9c6",        // 控件背景颜色,颜色值格式为"#RRGGBB",默认值为"#F7F7F7"
        progress: {                        // 标题栏控件的进度条样式
          color: "#ffffff",                // 进度条颜色,默认值为"#00FF00"
          height: "2px"                    // 进度条高度,默认值为"2px"
        },
        splitLine: {                       // 标题栏控件的底部分割线，类似borderBottom
          color: "#dddddd",                // 分割线颜色,默认值为"#CCCCCC"
          height: "1px"                    // 分割线高度,默认值为"2px"
        }
      }
    })
  }

  componentDidHide() {
  }

  componentDidCatchError() {
  }

  // 在 App 类中的 render() 函数没有实际作用
  // 请勿修改此函数
  render() {
    return (
      <Provider store={store}>
        <Index />
      </Provider>
    )
  }
}

Taro.render(<App />, document.getElementById('app'))
